In [71]:
import pandas as pd
import numpy as np
import os
os.chdir("/home/shahul/Downloads/Data_Set_Qualifiers/")

import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
plt.style.use('ggplot')

Edta of each mode of transport

Kochi metro

Loading dataframes
In [72]:
path="Mobility/Kochi Metro/KMRL - CSV/"
fares=pd.read_csv(path+"/Fares.csv", encoding = "ISO-8859-1")
routes=pd.read_csv(path+"/Routes.csv", encoding = "ISO-8859-1")
schedules=pd.read_csv(path+"/Schedules.csv", encoding = "ISO-8859-1")
stops=pd.read_csv(path+"/Stops.csv", encoding = "ISO-8859-1")
Basic understandings
In [73]:
fares.shape
Out[73]:
(16, 17)
In [74]:
fares.describe()['Aluva']
Out[74]:
count    16.000000
mean     33.125000
std      14.008926
min      10.000000
25%      20.000000
50%      35.000000
75%      42.500000
max      50.000000
Name: Aluva, dtype: float64
  • Here you can see that there are 16 stops for kochi metro.
  • The mean expense is 33INR.
  • Min price is 10inr.
  • Max price is 50inr.
What is the fare per kilometer?
In [115]:
plt.figure(figsize=(9,7))
fareper=(fares.iloc[:,:2]['Aluva']/schedules['dist_traveled (km)'][0:16]).replace(np.inf,0)
plt.plot(np.arange(0,16),fareper)
plt.xlabel("No of stops")
plt.ylabel("Fare per stop")
plt.savefig("fares.png")
plt.show()
  • Its evident from the above graph that as the number of stops user travelled increases,the fare per km decreases
In [76]:
routes.head()
Out[76]:
route_id route_short_name route_long_name route_type route_color route_text_color
0 R001 R1 Aluva to Maharaja College 1 00B7F3 0
In [77]:
schedules.shape
Out[77]:
(6016, 7)
In [78]:
schedules.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6016 entries, 0 to 6015
Data columns (total 7 columns):
trip_id               6016 non-null object
arrival_time          6016 non-null object
departure_time        6016 non-null object
stop_id               6016 non-null object
stop_sequence         6016 non-null int64
timepoint             6016 non-null int64
dist_traveled (km)    6016 non-null float64
dtypes: float64(1), int64(2), object(4)
memory usage: 329.1+ KB
In [79]:
schedules['arrival_time']=schedules['arrival_time'].apply(lambda x:datetime.strptime(x,"%H:%M:%S"))
schedules['departure_time']=schedules['departure_time'].apply(lambda x:datetime.strptime(x,"%H:%M:%S"))
In [80]:
schedules['delta']=(schedules['departure_time']-schedules['arrival_time']).apply(lambda x:x.seconds)
stop=schedules.groupby("stop_id",as_index=False)['delta'].agg('mean')
In [116]:
plt.figure(figsize=(7,7))
sns.barplot(y=stop['stop_id'],x=stop['delta'])
plt.xlabel('Time in seconds')
plt.title("Average waiting time in each stops")
plt.savefig("avg_wait.png")
In [82]:
Mode=["Ferry","Ferry Vega","Bus","car","walk","Bicycle","metro"]
speed=[14,22,20,28,5,16,35]
co2=[13,20,18,135,0,0,10]
extra_df=pd.DataFrame({"Mode":Mode,"speed":speed,"co2":co2})
In [83]:
extra_df.head()
Out[83]:
Mode speed co2
0 Ferry 14 13
1 Ferry Vega 22 20
2 Bus 20 18
3 car 28 135
4 walk 5 0

Speed by each transport

In [117]:
plt.figure(figsize=(8,5))
sns.barplot(y=extra_df['Mode'],x=extra_df['speed'])
plt.xlabel("speed in kmph")
plt.title(' Speed by each transport')
plt.show()
plt.savefig('speed.png')
<Figure size 432x288 with 0 Axes>

Co2 emission by each transport

In [118]:
plt.figure(figsize=(8,5))
sns.barplot(y=extra_df['Mode'],x=extra_df['co2'])
plt.xlabel("CO2 Emission (gm/km/passenger)")
plt.title('Co2 emission by each transport')
plt.show()
plt.savefig('co2.png')
<Figure size 432x288 with 0 Axes>

Geolocations

In [120]:
import plotly
import plotly.graph_objs as go

plotly.offline.init_notebook_mode(connected=False)

mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'


data = [
    go.Scattermapbox(
        lat=stops['stop_lat'],
        lon=stops['stop_lon'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=stops['stop_name'],
    )
]





layout = go.Layout(title="metro stations locations",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,
        center=dict(
            lat=10.03,
            lon=76.30
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='~/file1.html')

Ferry

In [87]:
path="Mobility/Ferry/Ferry - CSV/"
f_routes=pd.read_csv(path+"Routes.csv").copy()
f_schedules=pd.read_csv(path+"Schedules.csv").copy()
f_stops=pd.read_csv(path+"Stop_Locations.csv").copy()
f_trips=pd.read_csv(path+"Trips.csv").copy()

Basic ideas

In [88]:
f_routes.shape
Out[88]:
(43, 2)
In [89]:
f_routes.head(5)
Out[89]:
route_id Route Name
0 FOU01 Vytilla - Kakkanad
1 FOD01 Kakkanad - Vytilla
2 FOU02 Ernakulam - Varappuzha
3 FOD02 Varappuzha - Ernakulam
4 FOU03 Varappuzha - Chitoor
In [90]:
len(f_routes['Route Name'].unique())
Out[90]:
43
  • There are 43 service routes for ferry
In [91]:
f_schedules.head()
Out[91]:
route_id trip_id stop_id arrival_time departure_time stop_sequence
0 FOU01 TRIP0001 FS024 07:00:00 07:00:00 1
1 FOU01 TRIP0001 FS005 07:30:00 07:30:00 2
2 FOU01 TRIP0001 FS011 08:00:00 08:00:00 3
3 FOD01 TRIP0002 FS011 07:30:00 07:30:00 1
4 FOD01 TRIP0002 FS005 08:00:00 08:00:00 2
In [92]:
f_stops.head()
Out[92]:
stop_id stop_name stop_lat stop_lon
0 FS002 Chittoor 10.038325 76.26991
1 FS003 Embarkation 9.970072 76.26221
2 FS004 Ernakulam 9.972357 76.27833
3 FS005 Eroor 9.980063 76.33351
4 FS006 Fort Kochi 9.969376 76.25187
In [93]:
import plotly
import plotly.graph_objs as go

plotly.offline.init_notebook_mode(connected=False)

mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'

data = [
    go.Scattermapbox(
        lat=f_stops['stop_lat'],
        lon=f_stops['stop_lon'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=f_stops['stop_name'],
    )
]





layout = go.Layout(title="Ferry stop locations",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,
        center=dict(
            lat=9.99,
            lon=76.35
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [94]:
f_trips.head()
Out[94]:
route_id trip_id direction_id wheelchair_accessible
0 FOU01 TRIP0001 0 Yes
1 FOD01 TRIP0002 0 Yes
2 FOU01 TRIP0003 0 Yes
3 FOD01 TRIP0004 0 Yes
4 FOU01 TRIP0005 0 Yes

Auto stands

In [95]:
path="Mobility/Auto Stands Locations/"
auto=pd.read_csv(path+"Auto_Stands.csv")
In [96]:
plotly.offline.init_notebook_mode(connected=False)

mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'

data = [
    go.Scattermapbox(
        lat=auto['Latitude'],
        lon=auto['Longitude'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=auto['Name'],
    )
]





layout = go.Layout(title="Auto stand locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,
        center=dict(
            lat=10.10,
            lon=76.35
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')

Non Mobility

In [97]:
path="Non-Mobility/"
accommodation=pd.read_csv(path+"Accommodation.csv")
cultural=pd.read_csv(path+"Cultural.csv")
Gastronomy=pd.read_csv(path+"Gastronomy.csv",encoding= "ISO-8859-1")
Recreation=pd.read_csv(path+"Recreation.csv")
religious=pd.read_csv(path+"Religious_Establishments.csv",encoding= "ISO-8859-1")

Basic understanding

In [98]:
accommodation["Category"].unique()
Out[98]:
array(['hostel', 'hotel', 'motel'], dtype=object)
  • There are basically three categories of stay available
    • hostel
    • hotel
    • motel
Hostel stays
In [99]:
mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'

data = [
    go.Scattermapbox(
        lat=accommodation[accommodation['Category']=="hostel"]['Latitude '],
        lon=accommodation[accommodation['Category']=="hostel"]['Longitude'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=accommodation[accommodation['Category']=="hostel"]['Name'],
    )
]





layout = go.Layout(title="Hostel locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=12
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [100]:
mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'

data = [
    go.Scattermapbox(
        lat=accommodation[accommodation['Category']=="hotel"]['Latitude '],
        lon=accommodation[accommodation['Category']=="hotel"]['Longitude'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=accommodation[accommodation['Category']=="hotel"]['Name'],
    )
]





layout = go.Layout(title="Hotel locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=9
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
  • There is a cluster of hotel stays available near beach area of fort kochi
In [101]:
mapbox_access_token = 'pk.eyJ1Ijoic2hhaHVsZXM3ODYiLCJhIjoiY2pzaWo1dDh0MTZwNjQ0cWdoa2EwYzVvbCJ9.pIF5KdImGJppU17asYDYSg'

data = [
    go.Scattermapbox(
        lat=accommodation[accommodation['Category']=="motel"]['Latitude '],
        lon=accommodation[accommodation['Category']=="motel"]['Longitude'],
        mode='markers',
        marker=dict(
            size=7
        ),
        text=accommodation[accommodation['Category']=="motel"]['Name'],
    )
]





layout = go.Layout(title="motel locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')

Cultural activities

In [102]:
cat=cultural['Category'].unique()
In [103]:
cultural.head()
Out[103]:
Name Category Latitude Longitude
0 Dance and Arts Center Arts Centre 9.944677 76.340799
1 Greenix Ventures Arts Centre 9.968512 76.249920
2 St Mary's Convent Auditorium Arts Centre 9.964851 76.244722
3 Art Gallery Artwork 9.960486 76.258944
4 Chavara Statue Artwork 9.993676 76.357279
In [104]:
def funct(cat):
    data=[]
    for i in cat:
        trace=go.Scattermapbox(
                lat=cultural[cultural['Category']==i]['Latitude '],
                lon=cultural[cultural['Category']==i]['Longitude'],
                mode='markers',
                marker=dict(
                    size=7
                ),
                text=cultural[cultural['Category']==i]['Name'],name=i
            )
        data.append(trace)
    return data



data=[]
data=funct(cat)

layout = go.Layout(title="cultural activities locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [105]:
cat=Gastronomy["Category"].unique()
In [106]:
def funct(cat):
    data=[]
    for i in cat:
        trace=go.Scattermapbox(
                lat=Gastronomy[Gastronomy['Category']==i]['Latitude'],
                lon=Gastronomy[Gastronomy['Category']==i]['Longitude'],
                mode='markers',
                marker=dict(
                    size=7
                ),
                text=Gastronomy[Gastronomy['Category']==i]['Name'],name=i
            )
        data.append(trace)
    return data


data=[]
data=funct(cat)

layout = go.Layout(title="Gastronomy locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [107]:
cat=Recreation['Category'].unique()
In [108]:
def funct(cat):
    data=[]
    for i in cat:
        trace=go.Scattermapbox(
                lat=Recreation[Recreation['Category']==i]['Latitude'],
                lon=Recreation[Recreation['Category']==i]['Longitude'],
                mode='markers',
                marker=dict(
                    size=7
                ),
                text=Recreation[Recreation['Category']==i]['Name'],name=i
            )
        data.append(trace)
    return data


data=[]
data=funct(cat)

layout = go.Layout(title="Recreation activities locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [109]:
cat=religious['Category'].unique()
In [110]:
def funct(cat):
    data=[]
    for i in cat:
        trace=go.Scattermapbox(
                lat=religious[religious['Category']==i]['Latitude'],
                lon=religious[religious['Category']==i]['Longitude'],
                mode='markers',
                marker=dict(
                    size=7
                ),
                text=religious[religious['Category']==i]['Name'],name=i
            )
        data.append(trace)
    return data


data=[]
data=funct(cat)

layout = go.Layout(title="Religious centre locations around kochi",
    autosize=True,
    hovermode='closest',
    mapbox=dict(
        accesstoken=mapbox_access_token,
        bearing=0,style="streets",
        center=dict(
            lat=9.96,
            lon=76.25
        ),
        pitch=0,
        zoom=10
    ),
)

fig = dict(data=data, layout=layout)

plotly.offline.iplot(fig, filename='Montreal Mapbox')
In [ ]:
 
In [ ]:
 
In [ ]: